<?php
/**
 * Clase DBManager
 * @author chalodrv@yahoo.es
 */
class DBManager
{
	/**
	 * Variables
	 */
	var $dbLink;
	var $insertId;
	var $errorCode;
	var $errorDescription;

	/**
	 * Constructor
	 */
	function __construct()
	{
		$this->dbHost = DB_HOST;
		$this->dbUser = DB_USER;
		$this->dbPass = DB_PASS;
		$this->dbName = DB_NAME;
	}

	/**
	 * Método connect
	 * @param string $dbHost
	 * @param string $dbUser
	 * @param string $dbPass
	 * @param string $dbName
	 */
	function connect()
	{
		if (!$this->dbLink = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass)) {
			return false;
		}
		mysql_select_db($this->dbName, $this->dbLink);
		return true;
	}

	/**
	 * Método runQuery
	 * @param string $query
	 */
	function runQuery($query)
	{
		// Vaciamos el contenido de las variables de error
		$this->insertId = "";
		$this->errorCode = "";
		$this->errorDescription = "";

		// Ejecutamos la query
		$res = mysql_query($query, $this->dbLink);

		// Si la query falla, guardamos el error en las variables de error
		if (!$res) {
			$this->errorCode = mysql_errno();
			$this->errorDescription = mysql_error();
		} else {
			$this->insertId = mysql_insert_id();
		}

		// Devolvemos el resultado de la ejecución
		return $res;
	}

	/**
	 * Método getRow
	 * @param mysqlresource $res
	 */
	function getRow(&$res)
	{
		return mysql_fetch_assoc($res);
	}

	/**
	 * Método getRowCount
	 * @param mysqlresource $res
	 */
	function getRowCount(&$res)
	{
		return mysql_num_rows($res);
	}

	/**
	 * Método freeResult
	 * @param mysqlresource $res
	 */
	function freeResult(&$res)
	{
		mysql_free_result($res);
	}

	/**
	 * Método escapeString
	 * @param string $string
	 */
	function escapeString($string)
	{
		return mysql_real_escape_string($string);
	}

	/**
	 * Método getInsertId
	 */
	function getInsertId()
	{
		return $this->insertId;
	}

	/**
	 * Método getErrorCode
	 */
	function getErrorCode()
	{
		return $this->errorCode;
	}

	/**
	 * Método getErrorDescription
	 */
	function getErrorDescription()
	{
		return $this->errorDescription;
	}
}
?>
